<?php

namespace app\admin\controller;

use support\Response;
use common\utils\Json;
use think\Validate;
use Tinywan\ExceptionHandler\Exception\BadRequestHttpException;

/**
 * 基础控制器类
 * 用于统一管理认证相关属性和通用方法
 */
class BaseController
{
    /**
     * 不需要登录的方法
     * @var array
     */
    protected array $noNeedLogin = [];
    /**
     * 不需要鉴权的方法
     * @var array
     */
    protected array $noNeedAuth = [];

    /**
     * 成功响应
     * @param mixed $data 响应数据
     * @param string $message 响应消息
     * @param int $code 响应代码
     * @return Response
     */
    protected function success(mixed $data = null, string $message = 'success', int $code = 200): Response
    {
        return Json::success($data, $message, $code);
    }

    /**
     * 错误响应
     * @param string $message 错误消息
     * @param int $code 错误代码
     * @param mixed $data 附加数据
     * @return Response
     */
    protected function error(string $message = 'error', int $code = 400, mixed $data = null): Response
    {
        return Json::error($data, $message, $code);
    }
}